/**
 * 性别
 */
export const genderEnum = {
	MALE: {
		label: '男',
		value: 0
	},
	FEMALE: {
		label: '女',
		value: 1
	}
}
/**
 * 根据性别code返回性别name
 */
export function getGenderNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(genderEnum)
	typesKeys.forEach(k => {
		if (genderEnum[k].value === code) {
			res = genderEnum[k].label
		}
	})
	return res ? res : null
}
/**
 * 根据性别name返回性别code
 */
export function getGenderCodeByName (name) {
	let res = null
	const typesKeys = Object.keys(genderEnum)
	typesKeys.forEach(k => {
		if (genderEnum[k].label === name) {
			res = genderEnum[k].value
		}
	})
	return res >= 0 ? res : null
}

/**
 * 准驾车型
 */
export const driverCarTypeEnum = {
	C2: {
		label: 'C2',
		value: 0
	},
	C1: {
		label: 'C1',
		value: 1
	},
	B2: {
		label: 'B2',
		value: 2
	},
	B1: {
		label: 'B1',
		value: 3
	},
	A3: {
		label: 'A3',
		value: 4
	},
	A2: {
		label: 'A2',
		value: 5
	},
	A1: {
		label: 'A1',
		value: 6
	}
}

/**
 * 根据准驾车型code返回准驾车型name
 */
export function getDriverCarNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(driverCarTypeEnum)
	typesKeys.forEach(k => {
		if (driverCarTypeEnum[k].value === code) {
			res = driverCarTypeEnum[k].label
		}
	})
	return res ? res : null
}

/**
 * 根据准驾车型code返回准驾车型name
 */
export function getDriverCarCodeByName (name) {
	let res = null
	const typesKeys = Object.keys(driverCarTypeEnum)
	typesKeys.forEach(k => {
		if (driverCarTypeEnum[k].label === name) {
			res = driverCarTypeEnum[k].value
		}
	})
	return res >= 0 ? res : null
}

/**
 * 审核状态
 */
export const auditStatusEnum = {
	/** 待审核 */
	PENDING: {
		label: '待审核',
		value: 0
	},
	/** 审核通过 */
	PASS: {
		label: '审核通过',
		value: 1
	},
	/** 审核失败 */
	REJECT: {
		label: '审核失败',
		value: 2
	},
	/** 禁用 */
	FORBID: {
		label: '禁用',
		value: 3
	}
}

/**
 * 根据审核状态code返回审核状态name
 */
export function getReviewNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(auditStatusEnum)
	typesKeys.forEach(k => {
		if (auditStatusEnum[k].value === code) {
			res = auditStatusEnum[k].label
		}
	})
	return res ? res : null
}

/**
 * 司机订单充值状态
 */
export const driverRechargeStatusEnum = {
	/** 已取消 */
	CANCEL: {
		label: '已取消',
		value: 0
	},
	/** 待支付 */
	PENDING: {
		label: '待支付',
		value: 1
	},
	/** 已支付 */
	PAYED: {
		label: '已支付',
		value: 2
	},
	/** 已超时 */
	TIMEOUT: {
		label: '已超时',
		value: 3
	}
}

/**
 * 根据充值状态code返回状态name
 */
export function getDriverRechargeNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(driverRechargeStatusEnum)
	typesKeys.forEach(k => {
		if (driverRechargeStatusEnum[k].value === code) {
			res = driverRechargeStatusEnum[k].label
		}
	})
	return res ? res : null
}


/**
 * 司机余额明细类型
 */
export const driverBalanceTypeEnum = {
	/** 充值收入 */
	RECHARGE_INCOME: {
		label: '充值收入',
		value: 0
	},
	/** 代驾收入 */
	DRIVE_INCOME: {
		label: '代驾收入',
		value: 1
	},
	/** 提现支出 */
	WITHDRAW_EXPENDITURE: {
		label: '提现支出',
		value: 2
	},
	/** 退款支出 */
	REFUND_EXPENDITURE: {
		label: '退款支出',
		value: 3
	},
	/** 上线提成收入 */
	CHILD_INCOME: {
		label: '上线提成收入',
		value: 4
	},
	/** 下线退款支出 */
	CHILD_EXPENDITURE: {
		label: '下线退款支出',
		value: 5
	},
	/** 上线会员收入 */
	CHILD_VIP: {
		label: '上线会员收入',
		value: 6
	},
	/** 平台抽成支出 */
	PLATFORM_EXPENDITURE: {
		label: '平台抽成支出',
		value: 7
	},
	/** 代驾收入（线下） */
	OFFLINE_INCOME: {
		label: '代驾收入（线下）',
		value: 8
	}
}

/**
 * 根据余额明细类型code返回name
 */
export function getDriverBalanceTypeNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(driverBalanceTypeEnum)
	typesKeys.forEach(k => {
		if (driverBalanceTypeEnum[k].value === code) {
			res = driverBalanceTypeEnum[k].label
		}
	})
	return res ? res : null
}


/**
 * 司机提现状态
 */
export const driverWithdrawStatusEnum = {
	/** 待提现 */
	PENDING: {
		label: '待提现',
		value: 0
	},
	/** 已提现 */
	WITHDRAWN: {
		label: '已提现',
		value: 1
	},
	/** 提现失败 */
	REFUSED: {
		label: '提现失败',
		value: 2
	},
	/** 已取消 */
	CANCEL: {
		label: '已取消',
		value: 3
	}
}

/**
 * 根据司机提现状态code返回name
 */
export function getDriverWithdrawStatusNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(driverWithdrawStatusEnum)
	typesKeys.forEach(k => {
		if (driverWithdrawStatusEnum[k].value === code) {
			res = driverWithdrawStatusEnum[k].label
		}
	})
	return res ? res : null
}


/**
 * 通知类型（0充值成功 1代驾收入 2提现成功 3用户退款 4上线提成 5下线退款 6司机信息审核通过 7司机信息审核失败 8提现失败 9新增下线 10系统通知
 * NOTICE_RECHARGE_SUCCESS = 0;
 * NOTICE_DRIVE_INCOME = 1;
 * NOTICE_WITHDRAW_SUCCESS = 2;     // 管理端
 * NOTICE_USER_REFUND = 3;          // 不管
 * NOTICE_COMMISSION_INCOME = 4;
 * NOTICE_COMMISSION_REFUND = 5;    // 不管
 * NOTICE_REVIEW_PASS = 6;          // 管理端
 * NOTICE_REVIEW_REFUSE = 7;        // 管理端
 * NOTICE_WITHDRAW_FORBID = 8;      // 管理端
 * NOTICE_NEW_CHILD = 9;
 * NOTICE_SYSTEM = 10;              // 管理端
 */
export const driverNoticeType = {
	/** 充值成功 */
	RECHARGE_SUCCESS: {
		label: '充值成功',
		value: 0
	},
	/** 代驾收入 */
	DRIVE_INCOME: {
		label: '代驾收入',
		value: 1
	},
	/** 提现成功 */
	WITHDRAW_SUCCESS: {
		label: '提现成功',
		value: 2
	},
	/** 上线提成 */
	COMMISSION_INCOME: {
		label: '上线提成',
		value: 4
	},
	/** 司机信息审核通过 */
	REVIEW_PASS: {
		label: '司机信息审核通过',
		value: 6
	},
	/** 司机信息审核失败 */
	REVIEW_REFUSE: {
		label: '司机信息审核失败',
		value: 7
	},
	/** 提现失败 */
	WITHDRAW_FORBID: {
		label: '提现失败',
		value: 8
	},
	/** 新增下线 */
	NEW_CHILD: {
		label: '新增下线',
		value: 9
	},
	/** 系统通知 */
	SYSTEM: {
		label: '系统通知',
		value: 10
	},
	/** 开通会员 */
	OPEN_VIP: {
		label: '开通会员',
		value: 11
	},
	/** 平台抽成 */
	PLATFORM_EXPENDITURE: {
		label: '平台抽成',
		value: 12
	}
}

/**
 * 根据司机提现状态code返回name
 */
export function getDriverNoticeTypeNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(driverNoticeType)
	typesKeys.forEach(k => {
		if (driverNoticeType[k].value === code) {
			res = driverNoticeType[k].label
		}
	})
	return res ? res : null
}

/**
 * 充值请求的充值类型
 */
export const rechargeTypeEnum = {
	/** 普通充值 */
	COMMON: {
		label: '普通充值',
		value: 0
	},
	/** 月度会员 */
	MONTH: {
		label: '月度会员',
		value: 1
	},
	/** 年度会员 */
	YEAR: {
		label: '年度会员',
		value: 2
	}
}

/**
 * 会员类型
 */
export const driverVipTypeEnum = {
	/** 非会员 */
	NON: {
		label: '非会员',
		value: 0
	},
	/** 月度会员 */
	MONTH: {
		label: '月度会员',
		value: 1
	},
	/** 年度会员 */
	YEAR: {
		label: '年度会员',
		value: 2
	}
}
/**
 * 根据司机vip类型code返回name
 */
export function getDriverVipTypeNameByCode (code) {
	let res = null
	const typesKeys = Object.keys(driverVipTypeEnum)
	typesKeys.forEach(k => {
		if (driverVipTypeEnum[k].value === code) {
			res = driverVipTypeEnum[k].label
		}
	})
	return res ? res : null
}
